#KGNEW 28/08/2025
import SDL_DS3231
from datetime import datetime
import argparse

# 初始化 DS3231
rtc_device = SDL_DS3231.SDL_DS3231(twi=1, addr=0x68, at24c32_addr=0x57)

# 解析命令行参数
parser = argparse.ArgumentParser(description="DS3231 RTC 工具：查询/设置时间和温度")
parser.add_argument('--read-time', action='store_true', help="读取当前时间")
parser.add_argument('--read-temp', action='store_true', help="读取当前温度")
parser.add_argument('--set-time', type=str, help="设置时间，格式：YYYY-MM-DD HH:MM:SS (UTC)")

args = parser.parse_args()

# 如果没有指定参数，默认读取时间
if not (args.read_time or args.read_temp or args.set_time):
    args.read_time = True

# 设置时间
if args.set_time:
    try:
        dt = datetime.strptime(args.set_time, '%Y-%m-%d %H:%M:%S')
        rtc_device.write_datetime(dt)
        print(f"时间已设置为：{dt}")
    except ValueError:
        print("时间格式错误！请使用 YYYY-MM-DD HH:MM:SS")

# 读取时间
if args.read_time:
    rtc_time_utc = rtc_device.read_datetime()
    print(f"当前时间：{rtc_time_utc}")

# 读取温度
if args.read_temp:
    temperature_celsius = rtc_device.getTemp()
    print(f"当前温度：{temperature_celsius}°C")